﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Bit.Art.Core.Models
{
    /// <summary>
    /// API调用的返回结果的基类
    /// </summary>
    public class ApiCallResult
    {
        public ApiCallResult()
        { }

        public ApiCallResult(string message)
        {
            Success = false;
            Message = message;
        }

        public ApiCallResult(int errCode, string message)
        {
            Success = false;
            Message = message;
            ErrorCode = errCode;
        }

        /// <summary>
        /// 调用是否成功，如果为true，则应该访问<seealso cref="Result"/>字段，否则应该访问<seealso cref="Message"/>来获取错误的具体原因
        /// </summary>
        public bool Success { get; set; } = true;

        /// <summary>
        /// 如果API调用失败，该字段表示具体错误原因
        /// </summary>
        public string Message { get; set; }

        /// <summary>
        /// 如果API调用失败，该字段表示具体错误码，便于程序判断
        /// </summary>
        public int ErrorCode { get; set; }
    }

    /// <summary>
    /// API调用的返回结果
    /// </summary>
    public class ApiCallResult<T> : ApiCallResult
    {
        /// <summary>
        /// 成功调用API的时候，返回的实际结果
        /// </summary>
        public T Result { get; set; }
    }
}
